package com.zyp.jobseeker.mapper;

import com.zyp.jobseeker.entity.Application;
import com.zyp.jobseeker.entity.Interview;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 求职申请Mapper接口
 */
public interface ApplicationMapper {
    /**
     * 提交求职申请
     */
    int submitApplication(Application application);

    /**
     * 查询企业收到的求职申请（分页）
     */
    List<Application> findApplicationsByEnterpriseId(
            @Param("enterpriseId") Long enterpriseId,
            @Param("status") Integer status);

    /**
     * 更新申请状态为已拒绝
     */
    int rejectApplication(@Param("id") Long id);

    /**
     * 更新申请状态为已邀请面试
     */
    int acceptApplication(@Param("id") Long id);

    /**
     * 查询学生自己的求职申请（分页）
     */
    List<Application> findApplicationsByStudentId(
            @Param("studentId") Long studentId,
            @Param("status") Integer status);

    /**
     * 查询申请详情（用于数据增强）
     */
    Application selectById(Long id);

    /**
     * 插入面试邀请记录
     */
    int createInterview(Interview interview);

  /**
     * 查询所有申请信息（用于数据增强）
     */
    List<Map<String, Object>> findAllApplications();

}